﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace AcademiaInteligenteWeb
{
    public partial class SelectModalidade : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                AtualizarGrid();
            }
        }
        public void AtualizarGrid()
        {

            int idFuncionario = Convert.ToInt32(Request["id"]);
            grdModalidades.DataSource = new WsAcademiaInteligente.WsAcademiaInteligenteSoapClient().SelecionarModalidadePorAcademia(Convert.ToInt32(Session[Util.SESSION_ACADEMIA_ID]), idFuncionario);
            grdModalidades.DataBind();
        }
        protected void btnGravar_Click(object sender, EventArgs e)
        {
            int idFuncionario = Convert.ToInt32(Request["id"]);
            List<int> modalidades = new WsAcademiaInteligente.WsAcademiaInteligenteSoapClient().SelecionarModalidadePorAcademia(Convert.ToInt32(Session[Util.SESSION_ACADEMIA_ID]), idFuncionario).Where(a => a.Funcionario != null && a.Funcionario.Select(f => f.Id).Contains(idFuncionario)).Select(a => a.Id).ToList();
            List<int> modalidadesSelecionados = new List<int>();
            foreach (string item in Request.Form)
            {
                if (item.EndsWith("selectItem"))
                {
                    modalidadesSelecionados.Add(Convert.ToInt32(Request[item]));
                }
            }
            foreach (var item in modalidadesSelecionados)
            {
                if (!modalidades.Contains(item))
                {
                    new WsAcademiaInteligente.WsAcademiaInteligenteSoapClient().InserirFuncionarioModalidade(idFuncionario, item);
                }
                modalidades.Remove(item);
            }
            foreach (var item in modalidades)
            {
                new WsAcademiaInteligente.WsAcademiaInteligenteSoapClient().RemoverFuncionarioModalidade(idFuncionario, item);

            }
            AtualizarGrid();
        }

        protected void grdModalidades_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                HtmlInputCheckBox checkbox = (HtmlInputCheckBox)e.Row.FindControl("selectItem");
                WsAcademiaInteligente.Modalidade modalidade = (WsAcademiaInteligente.Modalidade)e.Row.DataItem;
                int idFuncionario = Convert.ToInt32(Request["id"]);
                if (modalidade.Funcionario != null && modalidade.Funcionario.Select(f => f.Id).Contains(idFuncionario))
                {
                    checkbox.Checked = true;
                }
            }
        }
    }
}